#include <REGX52.H>
int c;
int i=0;
int j;
void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}
char a[8]={~(0x01),~(0x02),~(0x04),~(0x08),~(0x10),~(0x20),~(0x40),~(0x80)};
int b[8];
void cd1()
{
   if(P1_0==0)
   {
     while(P1_0==0)
     {

     }
     P2=~(0x01);
     b[i++]=0;
   }
}
void cd2()
{
    if(P1_1==0)
    {
     while(P1_1==0)
     {

     }
     P2=~(0x02);
     b[i++]=1;
    }
}
void cd3()
{
    if(P1_2==0)
    {
     while(P1_2==0)
     {

     }
     P2=~(0x04);
     b[i++]=2;
    }
}
void cd4()
{
    if(P1_3==0)
    {
     while(P1_3==0)
     {

     }
     P2=~(0x08);
     b[i++]=3;
    }
}
void cd5()
{
    if(P1_4==0)
    {
     while(P1_4==0)
     {

     }
     P2=~(0x10);
     b[i++]=4;
    }
}
void cd6()
{
    if(P1_5==0)
    {
     while(P1_5==0)
     {

     }
     P2=~(0x20);
     b[i++]=5;
    }
}
void cd7()
{
    if(P1_6==0)
    {
     while(P1_6==0)
     {

     }
     P2=~(0x40);
     b[i++]=6;
    }
}
void cd8()
{
    if(P1_7==0)
    {
     while(P1_7==0)
     {

     }
     P2=~(0x80);
     b[i++]=7;
    }
}
int i;
void main()
{
  while(1)
  {
    if(P3_6==0)
    {
      while(P3_6==0)
      {
        
      }
      c=1;
    }
    if(P3_7==0)
    {
      while(P3_7==0)
      {

      }
      c=0;
    }
    if(c==1)
    {
    cd1();
    cd2();
    cd3();
    cd4();
    cd5();
    cd6();
    cd7();
    cd8();
    }
    if(c==0)
    {
      for(j=0;j<i;j++)
      {
        P2=a[b[j]];
        delay_ms(500);
      }
    }
  }
}
